import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.2')

from google.appengine.ext.webapp import template

from google.appengine.ext import webapp
from google.appengine.ext.webapp.util import run_wsgi_app
import random

class MainHandler(webapp.RequestHandler):
  def get(self):
    template_values = {}
    path = os.path.join(os.path.dirname(__file__), 'hello.html')
    self.response.out.write(template.render(path, template_values))

class DiceHandler(webapp.RequestHandler):
  def get(self):
    times = self.request.get('times') 

	
    DICE_ROLLS = 0
    num_of_dice_rolled = 0
    dice_1 = int()
    dice_2 = int()

    if times.isdigit():
   	 for rolls in range(int(times)):
		num_of_dice_rolled += 1
		
		dice_1 = random.randint(1, 6)
		dice_2 = random.randint(1, 6)
		self.response.out.write("Rolls: " +  str(dice_1) + ", " + str(dice_2) + "<br>")
		if dice_1 == 1 and dice_2 == 1:
			self.response.out.write("You got Snake Eyes!<br>")
		if dice_1 == 6 and dice_2 == 6:
			self.response.out.write("You got Double Sixes!<br>")
			self.response.out.write("Rolled the dice " + str(num_of_dice_rolled) + " times<br>")
    else:
	 self.response.out.write('"' + times + '"' + " is not a number.")

class QuizHandler(webapp.RequestHandler):
  def get(self):
    template_values = {'name' : self.request.get('name')}
    path = os.path.join(os.path.dirname(__file__), 'quiz.html')
    self.response.out.write(template.render(path, template_values))

class WrongAnswer(): 
  def __init__(self, question, guess, correct): 
	self.question = question
	self.guess = guess
	self.correct = correct

class GradeQuizHandler(webapp.RequestHandler):
  def get(self):
    addition_guess = self.request.get('addition')
    capital_guess = self.request.get('capital').strip()
    template_values = {'name': self.request.get('name'), 'wrong_answers' : []}

    if addition_guess != "7": 
	template_values['wrong_answers'].append(WrongAnswer("3 + 4", addition_guess, 7))

    if capital_guess.capitalize() != "Sacramento":
	template_values['wrong_answers'].append(WrongAnswer("What is the capital of California?", capital_guess, "Sacramento"))


    path = os.path.join(os.path.dirname(__file__), 'grade_quiz.html')
    self.response.out.write(template.render(path, template_values))

class GoodbyeHandler(webapp.RequestHandler):
  def get(self):
    self.response.out.write('Goodbye app engine world!')

def main():
  application = webapp.WSGIApplication([('/hello.*', MainHandler),
					('/goodbye.*', GoodbyeHandler),
					('/dice.*', DiceHandler), 
					('/quiz', QuizHandler),
       					('/grade_quiz', GradeQuizHandler)],
                                       debug=True)
  run_wsgi_app(application)

if __name__ == '__main__':
  main()
